home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 19 Adventure Games / POPULA.BIN (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  13.4 KB  |  589 lines

  1. 10 REM TITLE SCREEN
  2. 20 POKE 53281,1:POKE 53280,2
  3. 30 PRINT "";:GOSUB 20000
  4. 40 PRINT "";
  5. 50 PRINT "P O P U L A T I O N";
  6. 60 PRINT "[157][157][157][157][157][157][157][157]" ;
  7. 70 PRINT "BY  D.N.I.";
  8. 80 DEF FNA(X)=INT(RND(1)*X+1)
  9. 100 DIM A$(500 ),B%( 4,500 )
  10. 110 DIM BI%(3,100),MA%(200)
  11. 120 DIM DE%(100),DI%(2,100)
  12. 130 DIM S%(5,9 ),Y%(200)
  13. 140 DIM A2$(200 ),B2%(4,200 )
  14. 150 DIM SM%(250),SF%(250)
  15. 160 DIM Q%(100),F%(100),N$(200)
  16. 170 DIM C1$( 9),C2$( 9,5)
  17. 200 DATA STATUS,SEX,YEAR OF BIRTH,SPOUSE
  18. 210 DATA HEIGHT,NOSE,SKIN COLOR,HAIR
  19. 220 DATA EYES
  20. 250 FOR T=1 TO  9:READ C1$(T):NEXT     
  21. 260 DATA SINGLE,MARRIED,DEAD,X
  22. 270 DATA MALE,FEMALE,X
  23. 280 DATA X
  24. 290 DATA X
  25. 300 DATA SHORT,MEDIUM,TALL,X
  26. 310 DATA POINTED,FLAT,X
  27. 320 DATA BLACK,WHITE,BROWN,YELLOW,RED,X
  28. 330 DATA BLACK,BROWN,RED,BLOND,X
  29. 340 DATA BLUE,BROWN,GREY,GREEN,BLACK,X
  30. 420 FOR T=1 TO  9
  31. 430 E=1
  32. 440 READ S$:IF S$="X" THEN 470
  33. 450 C2$(T,E)=S$
  34. 455 REM PRINT C1$(T)  ,C2$(T,E)
  35. 460 E=E+1:GOTO 440
  36. 470 NEXT T
  37. 500 DATA TOM,DICK,HARRY,FRED,DAVE,BOB,CHRIS,JOHN,SCOTT
  38. 510 DATA ART,BRIAN,JASON,JOSH,JIM,RICK
  39. 515 DATA ADRIAN,ADAM,ALAN,ANDREW,ANTHONY
  40. 520 DATA ARNOLD,BARRY,BEN,BERT,BRUCE
  41. 524 DATA CALVIN,CARL,DAN,CRAIG,CURTIS
  42. 530 DATA DREW,DEREK,DON,EARL,ED,ERIC
  43. 535 DATA FELIX,FRANK,GARY,JEFF,GILBERT
  44. 540 DATA GEORGE,GLENN,GUS,GUY,HAL,HARRY
  45. 545 DATA HARVEY,IAN,IVAN,JACK,JAY,JOE
  46. 550 DATA JUSTIN,KENT,LEE,LARS,LEON
  47. 555 DATA LUKE,MARK,MATT,MAX,MIKE,MILT
  48. 560 DATA MOSES,NEVILLE,NIGEL,NOAH
  49. 565 DATA OLIVER,PAT,PAUL,PETER,RALPH
  50. 570 DATA RAY,REGGI,ROD,ROGER,RON,ROY
  51. 575 DATA SAM,SEAN,SID,STEVEN,TED,TIM
  52. 580 DATA TONY,WALTER,BILL,ZEKE
  53. 599 DATA X
  54. 600 DATA ROBIN,MARY,CAROLYN,ANN,RENEA
  55. 610 DATA SUE,BARB,JOAN,MARTHA,JUNE
  56. 620 DATA DIANE,LISA,JUDY,PAT,ROSE
  57. 625 DATA ABBY,AGNES,ALEXIS,ALISON
  58. 630 DATA AMELIA,AMY,ANGELA,ANITA,APRIL
  59. 635 DATA ATHENE,AVIS,BETH,BETTY,CAROL
  60. 640 DATA CHAR,CHERYL,CINDY,CORA,DAISY
  61. 645 DATA DAPHNE,DAWN,LILAH,DESIREE
  62. 650 DATA DIANE,DORA,DONNA,DORIS,DOT
  63. 655 DATA EDIE,LIZA,ELSA,EMMA,ESTHER
  64. 660 DATA EVE,FAITH,FANNY,FAY,GAIL,GRACE
  65. 665 DATA GWEN,HELEN,HOPE,INEZ,IRIS,IVY
  66. 670 DATA JANE,JO,JOY,KAREN,KATE,KAY
  67. 675 DATA LILY,LINDA,LOLA,LUCY,MARGIE
  68. 680 DATA MOLLY,MYRT,NANCY,NINA,PAM,PEARL
  69. 685 DATA PEG,POLLY,GINA,BECKY,RUTH,SALLY
  70. 690 DATA SUE,TRUDY,URSULA,GINNY,WENDY
  71. 699 DATA X
  72. 700 T=1
  73. 710 READ N$:IF N$="X"THEN 730
  74. 720 N$(T)=N$:T=T+1:GOTO710
  75. 730 NM=T-1:T=101
  76. 740 READ N$:IF N$="X" THEN 760
  77. 750 N$(T)=N$:T=T+1:GOTO 740
  78. 760 NF=T-101
  79. 800 FOR T=0 TO 100
  80. 810 Q%(T)=1000-.9*1.07^T
  81. 820 NEXT T
  82. 900 DATA 100,100,100,100,100,100,100,100,999
  83. 950 T=14
  84. 960 READ F:IF F=999 THEN 980
  85. 970 F%(T)=F:T=T+1:GOTO 960
  86. 980 FOR E=T TO 45:F%(E)=F%(E-1)-.5:NEXT
  87. 1000 GOSUB 20100                       
  88. 1010 PRINT "";:POKE 53280,5:GOSUB 20000
  89. 1020 PRINT "";"       M E N U  A"
  90. 1030 PRINT " 1. INSTRUCTIONS"
  91. 1035 PRINT
  92. 1040 PRINT " 2. CONSTRUCT A STARTING":PRINT"      POPULATION"
  93. 1050 PRINT
  94. 1060 PRINT " 3. LET COMPUTER CONSTRUCT":PRINT" POPULATION"
  95. 1070 PRINT "    ";:INPUT A
  96. 1080 IF A>3 OR A<1 THEN 1010
  97. 1110 ON A GOTO 1200,1300,1400
  98. 1200 REM INSTRUCTIONS
  99. 1201 PRINT "[147]"
  100. 1202 PRINT "EIGHT PEOPLE HAVE BEEN STRANDED ON A"
  101. 1203 PRINT "DESERTED ISLAND WITHOUT HOPE OF RESCUE"
  102. 1204 PRINT "TRACK THEIR DESCENDENTS WITH THIS"
  103. 1205 PRINT "PROGRAM. WATCH THE INHERITANCE OF "
  104. 1206 PRINT "      HEIGHT"
  105. 1207 PRINT "      HAIR COLOR"
  106. 1208 PRINT "      SKIN COLOR"
  107. 1209 PRINT "      EYE COLOR"
  108. 1210 PRINT " AND  NOSE SHAPE"
  109. 1211 PRINT "IN THE SUCEEDING GENERATIONS ON THE"
  110. 1212 PRINT "ISLAND. YOU CAN INFLUENCE THEM BY"
  111. 1213 PRINT "PLAYING MATCHMAKER"
  112. 1214 PRINT "HAVE FUN!"
  113. 1215 GOSUB 20100
  114. 1217 PRINT "[147]"
  115. 1220 PRINT "YOU CAN CONSTRUCT THE POPULATION "
  116. 1221 PRINT "YOURSELF OR LET THE COMPUTER DO IT FOR"
  117. 1222 PRINT "YOU. WATCH FOR THE EMERGENCE OF "
  118. 1223 PRINT "RECESSIVE CHARACTERISTICS IN EACH"
  119. 1224 PRINT "GENERATION.":PRINT""
  120. 1225 PRINT "THERE IS NO PRE-SET OBJECTIVE TO THIS"
  121. 1226 PRINT "SIMULATION. YOU CAN MAKE UP YOUR OWN,"
  122. 1227 PRINT "OR JUST SIT BACK AND WATCH"
  123. 1234 PRINT "HAVE FUN!"
  124. 1235 GOSUB 20100
  125. 1299 GOTO 1010
  126. 1300 REM YOU CONSTRUCT
  127. 1305 FOR Z=1 TO 8
  128. 1306 PRINT "[147]"
  129. 1307 PRINT "PERSON #";Z:PRINT
  130. 1310 PRINT "ENTER (1) FOR MALE, (2) FOR FEMALE";:INPUT S
  131. 1320 PRINT "ENTER FIRST,MIDDLE,LAST NAME"
  132. 1325 INPUT F$,M$,L$
  133. 1330 L$(Z)=L$
  134. 1335 A$(Z)=F$+" "+M$+" "+L$
  135. 1340 B%(1,Z)=1E4:B%(2,Z)=S*1E4
  136. 1342 M=1E4
  137. 1345 FOR T=1 TO 5
  138. 1346 PRINT C1$(T+4):PRINT "ENTER:"
  139. 1348 FOR K=1 TO 5
  140. 1350 IF C2$(T+4,K)=""  THEN 1354
  141. 1352 PRINT ,K;C2$(T+4,K)
  142. 1354 NEXT K
  143. 1356 INPUT C:IF C2$(T+4,C)="" THEN 1346
  144. 1358 B%(3,Z)=B%(3,Z)+M*C
  145. 1360 C=FNA(5):IFC2$(T+4,C)="" THEN 1360
  146. 1362 B%(4,Z)=B%(4,Z)+M*C
  147. 1364 M=M/10
  148. 1366 NEXT T
  149. 1368 NEXT Z
  150. 1370 GOTO 1625
  151. 1399 GOTO 1010
  152. 1400 REM START FROM SCRATCH
  153. 1405 Y0=20
  154. 1410 DATA SMITH,JONES,BROWN,WOLF
  155. 1420 DATA ROGERS,SULLIVAN,INGRAM,WEST
  156. 1425 PRINT "[147]";"";
  157. 1430 FOR Z=1 TO 8
  158. 1440 S=FNA(2)
  159. 1445 N5=NM:IF S=2 THEN N5=NF
  160. 1450 F=FNA(N5 )+100*(S-1)
  161. 1460 IF N$(F)="" THEN 1450
  162. 1470 M=FNA( N5)+100*(S-1)
  163. 1480 IF M=F THEN 1470
  164. 1490 IF N$(M)="" THEN 1470
  165. 1500 READ L$:L$(Z)=L$
  166. 1510 A$(Z)=N$(F)+" "+N$(M)+" "+L$
  167. 1530 B%(1,Z)=1E4:B%(2,Z)=S*1E4
  168. 1535 M=1E4
  169. 1540 FOR T=1 TO  5
  170. 1550 C=FNA(5):IF C2$(T+4,C)=""THEN 1550
  171. 1560 B%(3,Z)=B%(3,Z)+M*C
  172. 1570 C=FNA(5):IF C2$(T+4,C)="" THEN 1570
  173. 1580 B%(4,Z)=B%(4,Z)+M*C
  174. 1590 M=M/10
  175. 1600 NEXT T
  176. 1620 NEXT Z
  177. 1625 Z=Z-1
  178. 1627 Y0=15
  179. 2000 PRINT "[144]":GOSUB 20000
  180. 2010 POKE 53280,0
  181. 2020 PRINT "";"       M E N U  B"
  182. 2030 PRINT " 1. POPULATION SUMMARY"
  183. 2035 PRINT
  184. 2040 PRINT " 2. SEARCH POPULATION    "
  185. 2050 PRINT
  186. 2060 PRINT " 3. LIST POPULATION          "
  187. 2070 PRINT
  188. 2080 PRINT " 4. NEXT FIVE YEARS          "
  189. 2090 PRINT
  190. 2100 PRINT " 5. STOP                     "
  191. 2110 PRINT "    ";:INPUT A
  192. 2120 IF A>5 OR A<1 THEN 2000
  193. 2130 ON A GOTO 2140,2500,3000,3200,4000
  194. 2140 REM POPULATION SUMMARY
  195. 2150 GOSUB 7000
  196. 2160 ON A GOTO 2170,6000,2432,2000
  197. 2170 REM CHACTERISTICS
  198. 2180 FOR T=1 TO 5
  199. 2181 FOR I=1 TO 9
  200. 2182 S%(T,I)=0
  201. 2183 NEXT I
  202. 2184 NEXT T
  203. 2190 FOR T=1 TO Z
  204. 2200 S=INT(B%(1,T)/10000)
  205. 2230 S%(S,1)=S%(S,1)+1
  206. 2235 IF S=3 THEN 2330
  207. 2240 S=INT(B%(2,T)/10000)
  208. 2250 S%(S,2)=S%(S,2)+1
  209. 2260 D$=STR$(B%(3,T))
  210. 2270 FOR I=1 TO 5
  211. 2280 D=VAL(MID$(D$,I+1,1))
  212. 2290 S%(D,I+4)=S%(D,I+4)+1
  213. 2300 NEXT I
  214. 2330 NEXT T
  215. 2340 PRINT "[147]"
  216. 2345 S3$=""
  217. 2350 FOR T=1 TO 9
  218. 2355 IF T=3 OR T=4 THEN 2480
  219. 2360 PRINT S3$; C1$(T)
  220. 2380 FOR I=1 TO 5
  221. 2390 IF C2$(T,I)="" THEN 2411
  222. 2400 PRINT S3$;"  ";C2$(T,I),S%(I,T)
  223. 2410 NEXT I
  224. 2411 IF T<>5 THEN 2420
  225. 2412 S3$=""
  226. 2413 PRINT "";
  227. 2420 NEXT T
  228. 2425 PRINT "CURRENT YEAR";Y0
  229. 2430 GOSUB 20100
  230. 2431 GOTO 2140
  231. 2432 REM YOB SUMMARY
  232. 2433 FOR T=0 TO Y0:Y%(T)=0:NEXT
  233. 2434 FOR T=1 TO Z
  234. 2435 S=INT(B%(1,T)/10000)
  235. 2436 IF S=3 THEN 2439
  236. 2437 Y3=B%(2,T)-1E4*INT(B%(2,T)/1E4)
  237. 2438 Y%(Y3)=Y%(Y3)+1
  238. 2439 NEXT T
  239. 2440 PRINT "[147]"
  240. 2450 PRINT "YEAR OF BIRTH SUMMARY"
  241. 2455 PRINT "THE CURRENT YEAR IS";Y0;""
  242. 2456 PRINT "YEAR":PRINT"OF","NUMBER":PRINT"BIRTH","BORN"
  243. 2460 FOR T=0 TO 200
  244. 2470 IF Y%(T)>0 THEN PRINT T,Y%(T)
  245. 2480 NEXT T
  246. 2485 PRINT
  247. 2490 GOSUB 20100
  248. 2495 GOTO 2000
  249. 2500 REM SEARCH POPULATION
  250. 2501 PRINT "[147]"
  251. 2502 PRINT "ENTER LAST NAME TO SEARCH FOR";:INPUT NA$
  252. 2510 FOR T=1 TO Z
  253. 2512 N$=A$(T):GOSUB 20150
  254. 2513 PRINT "[147]S E A R C H I N G"
  255. 2514 IF L$<>NA$ THEN 2650
  256. 2520 PRINT "[147]";
  257. 2521 PRINT A$(T):PRINT ""
  258. 2525 S1=          INT(B%(1,T)/10000)
  259. 2530 PRINT,C1$(1);":";C2$(1,S1)
  260. 2535 S2=          INT(B%(2,T)/10000)
  261. 2540 PRINT,C1$(2);":";C2$(2,S2)
  262. 2545 PRINT
  263. 2550 IF S1<>2 THEN 2570
  264. 2560 S3=B%(1,T)-S1*10000:PRINT C1$(4),A$(S3)
  265. 2570 S4=B%(2,T)-S2*10000:PRINT "",,C1$(3);S4
  266. 2575 PRINT ""
  267. 2580 D$=STR$(B%(3,T))
  268. 2590 FOR E=1 TO 5
  269. 2600 D5=VAL(MID$(D$,E+1,1))
  270. 2610 PRINT C1$(E+4);"--",C2$(   E+4,D5)
  271. 2620 PRINT
  272. 2630 NEXT E
  273. 2640 GOSUB 20100
  274. 2650 NEXT T
  275. 2660 GOTO 2000
  276. 3000 REM LIST POPULATION
  277. 3010 FOR T=1 TO Z
  278. 3020 PRINT "[147]";
  279. 3021 PRINT A$(T):PRINT ""
  280. 3025 S1=          INT(B%(1,T)/10000)
  281. 3030 PRINT,C1$(1);":";C2$(1,S1)
  282. 3035 S2=          INT(B%(2,T)/10000)
  283. 3040 PRINT,C1$(2);":";C2$(2,S2)
  284. 3045 PRINT
  285. 3050 IF S1<>2 THEN 3070
  286. 3060 S3=B%(1,T)-S1*10000:PRINT C1$(4),A$(S3)
  287. 3070 S4=B%(2,T)-S2*10000:PRINT "",,C1$(3);S4
  288. 3075 PRINT ""
  289. 3080 D$=STR$(B%(3,T))
  290. 3090 FOR E=1 TO 5
  291. 3100 D5=VAL(MID$(D$,E+1,1))
  292. 3110 PRINT C1$(E+4);"--",C2$(   E+4,D5)
  293. 3120 PRINT
  294. 3130 NEXT E
  295. 3140 GOSUB 20100
  296. 3150 NEXT T
  297. 3160 GOTO 2000
  298. 3200 REM NEXT 5 YEARS
  299. 3205 M8=0:D8=0:B8=0:Q8=0:Y0=Y0+5
  300. 3210 PRINT "[147]";""
  301. 3220 POKE 53280,12:POKE 53281,12
  302. 3225 PRINT "SEARCHING FOR SINGLES..."
  303. 3230 GOSUB 3900
  304. 3231 IF M7*F7>0 THEN 3240
  305. 3232 IF M7=0 THEN PRINT "THERE ARE NO SINGLE MEN"
  306. 3233 IF F7=0 THEN PRINT "THERE ARE NO SINGLE WOMEN"
  307. 3234 GOTO 3458
  308. 3240 PRINT "DO YOU WANT TO PLAY MATCHMAKER?";:INPUT MM$
  309. 3245 PRINT "[147]"
  310. 3250 IF LEFT$(MM$,1)="N" THEN 3370
  311. 3260 IF LEFT$(MM$,1)<>"Y" THEN 3240
  312. 3270 PRINT "SINGLE MEN           SINGLE WOMEN"
  313. 3271 FOR T=1 TO M7
  314. 3272 N$=A$(SM%(T)):GOSUB 20150
  315. 3280 PRINT T;F$;" ";L$
  316. 3281 NEXT T
  317. 3282 SS=M7:IF F7>M7 THEN SS=F7
  318. 3285 PRINT "";"";
  319. 3286 R$=""
  320. 3287 FOR T=1 TO F7
  321. 3288 N$=A$(SF%(T)):GOSUB 20150
  322. 3295 PRINT R$;T;F$;" ";L$
  323. 3296 NEXT T
  324. 3297 PRINT "";:FOR T=1 TO SS:PRINT "";:NEXT
  325. 3300 PRINT "ENTER MATCH BY NUMBER (M,F)";:INPUT M2,F2
  326. 3310 IF M2>M7 THEN 3300
  327. 3320 IF F2>F7 THEN 3300
  328. 3330 B%(1,SM%(M2))=B%(1,SM%(M2))+10000+SF%(F2)
  329. 3340 B%(1,SF%(F2))=B%(1,SF%(F2))+10000+SM%(M2)
  330. 3341 N$=A$(SF%(F2)):GOSUB 20150
  331. 3342 A$(SF%(F2))=F$+" "+L$             
  332. 3343 N$=A$(SM%(M2)):GOSUB 20150
  333. 3344 A$(SF%(F2))=A$(SF%(F2))+" "+L$
  334. 3346 M8=M8+1:MA%(M8)=SM%(M2)
  335. 3350 SF%(F2)=0:SM%(M2)=0
  336. 3355 M7=M7-1:F7=F7-1
  337. 3360 PRINT "[147]":GOTO 3230
  338. 3370 REM COMPUTER MATCHES
  339. 3375 PRINT "[147]"
  340. 3376 PRINT "COMPUTER MATCHMAKING IN PROGRESS"
  341. 3380 GOSUB 3900
  342. 3390 SS=M7:IF F7<M7 THEN SS=F7
  343. 3395 IF SS=0 THEN 3452
  344. 3400 FORMQ=1 TO SS
  345. 3405 M2=MQ:F2=MQ
  346. 3410 IF F7>M7 THEN F2=F2+F7-M7
  347. 3420 IF M7>F7 THEN M2=M2+M7-F7
  348. 3430 B%(1,SM%(M2))=B%(1,SM%(M2))+10000+SF%(F2)
  349. 3440 B%(1,SF%(F2))=B%(1,SF%(F2))+10000+SM%(M2)
  350. 3441 N$=A$(SF%(F2)):GOSUB 20150
  351. 3442 A$(SF%(F2))=F$+" "+L$             
  352. 3443 N$=A$(SM%(M2)):GOSUB 20150
  353. 3444 A$(SF%(F2))=A$(SF%(F2))+" "+L$
  354. 3446 M8=M8+1:MA%(M8)=SM%(M2)
  355. 3450 NEXT MQ
  356. 3452 PRINT "THERE WERE";M8;"MARRIAGES"
  357. 3454 FOR T=1 TO M8
  358. 3455 SP=B%(1,MA%(T))-10000*INT(B%(1,MA%(T))/10000)
  359. 3456 PRINT A$(MA%(T));" AND ";A$(SP)
  360. 3457 NEXT T
  361. 3458 PRINT: GOSUB 20100
  362. 3459 GOTO 3605
  363. 3460 PRINT "[147]":PRINT "DIVORCES"
  364. 3465 D8=0
  365. 3466 GOSUB 3900
  366. 3468 DI=ABS(M7-F7)
  367. 3470 DI=100*DI/Z*2:IF DI<10 THEN DI=10
  368. 3472 IF DI>75 THEN DI=75
  369. 3480 FOR T=1 TO Z
  370. 3490 REM IF B%(2,T)>19999 THEN 3550
  371. 3500 IF B%(1,T)<20000 THEN 3550
  372. 3505 IF B%(1,T)>29999 THEN 3550
  373. 3510 DD=FNA(100):IF DD>DI THEN 3550
  374. 3520 SP=B%(1,T)-20000:B%(1,T)=10000
  375. 3530 B%(1,SP)=10000
  376. 3540 D8=D8+1:DI%(1,D8)=T:DI%(2,D8)=SP
  377. 3550 NEXT T
  378. 3560 PRINT "";
  379. 3562 PRINT "THERE WERE ";D8;" DIVORCES"
  380. 3565 IF D8=0 THEN 3600
  381. 3570 FOR T=1 TO D8
  382. 3580 PRINT A$(DI%(1,T));" AND ";A$(DI%(2,T))
  383. 3590 NEXT T
  384. 3595 PRINT
  385. 3600 GOSUB 20100
  386. 3602 RETURN
  387. 3605 PRINT "[147]"
  388. 3610 PRINT "BIRTHS"
  389. 3620 B8=0
  390. 3640 FOR T=1 TO Z
  391. 3650 IF B%(1,T)<19999 OR B%(1,T)>29999 THEN 3750
  392. 3660 IF B%(2,T)<20000 THEN 3750
  393. 3665 Y7=Y0-B%(2,T)+10000*INT(B%(2,T)/10000)
  394. 3667 SP=B%(1,T)-10000*INT(B%(1,T)/10000)
  395. 3670 IF FNA(100)>F%(Y7) THEN 3750
  396. 3672 B8=B8+1
  397. 3675 S=FNA(2)
  398. 3680 N5=NM:IF S=2 THEN N5=NF
  399. 3685 F=FNA(N5 )+100*(S-1)
  400. 3690 M=FNA( N5)+100*(S-1)
  401. 3695 IF M=F THEN 3690
  402. 3700 N$=A$(SP):GOSUB 20150
  403. 3705 A$(Z+B8)=N$(F)+" "+N$(M)+" "+L$
  404. 3710 B%(1,Z+B8)=1E4:B%(2,Z+B8)=S*1E4+Y0
  405. 3711 P$(1)=STR$(B%(3,T)):P$(2)=STR$(B%(4,T))
  406. 3712 P$(3)=STR$(B%(3,SP)):P$(4)=STR$(B%(4,SP))
  407. 3715 M=1E4
  408. 3720 FOR U=1 TO  5
  409. 3725 C =FNA(4)
  410. 3727 P5=VAL(MID$(P$(C),U+1,1))
  411. 3730 B%(3,Z+B8)=B%(3,Z+B8)+M*P5
  412. 3735 D=FNA(4):IF D=C THEN 3735
  413. 3737 P5=VAL(MID$(P$(D),U+1,1))
  414. 3740 B%(4,Z+B8)=B%(4,Z+B8)+M*P5
  415. 3745 M=M/10
  416. 3746 NEXT U
  417. 3748 BI%(1,B8)=T:BI%(2,B8)=SP:BI%(3,B8)=Z+B8
  418. 3750 NEXT T
  419. 3760 PRINT "THERE WERE";B8;"BIRTHS"
  420. 3765 IF B8=0 THEN 3800
  421. 3770 FOR T=1 TO B8
  422. 3780 PRINT A$(BI%(3,T));" WAS BORN TO ";A$(BI%(1,T));" AND ";A$(BI%(2,T))
  423. 3785 PRINT :PRINT
  424. 3786 FOR K=1 TO 500*T:NEXT
  425. 3790 NEXT T
  426. 3795 Z=Z+B8
  427. 3800 GOSUB 20100
  428. 3802 GOSUB 3460
  429. 3805 PRINT "[147]"
  430. 3810 PRINT "DEATHS"
  431. 3811 TP=FNA(23):IF B8+Z>500 THEN TP=1
  432. 3812 IF TP<3 THEN PRINT "TYPHOON STRIKES ISLAND!!!"
  433. 3815 FOR T=1 TO Z
  434. 3817 S=INT(B%(1,T)/10000):IF S=3 THEN 3885
  435. 3820 Y7=Y0-B%(2,T)+10000*INT(B%(2,T)/10000)
  436. 3821 QQ=Q%(Y7):IF TP<3 THEN QQ=QQ/2
  437. 3825 IF FNA(1000)<QQ     THEN 3885
  438. 3830 SP=B%(1,T)-10000*INT(B%(1,T)/10000)
  439. 3835 B%(1,T)=30000:PRINT A$(T);" AGE";Y7
  440. 3840 IF SP=0 THEN 3880
  441. 3845 B%(1,SP)=10000:PRINT "  SURVIVED BY ";A$(SP):PRINT
  442. 3880 PRINT
  443. 3885 NEXT T
  444. 3890 GOSUB 20100
  445. 3891 IF FNA(50)>2+Y0/15 THEN 3895
  446. 3892 GOSUB 8000
  447. 3895 GOTO 2000
  448. 3900 REM SEARCH FOR SINGLES
  449. 3905 M7=0:F7=0
  450. 3910 FOR T=1 TO Z
  451. 3920 IF B%(1,T)>10000 THEN 3960
  452. 3925 Y7=Y0-B%(2,T)+10000*INT(B%(2,T)/10000)
  453. 3927 IF Y7<19 THEN 3960
  454. 3930 IF B%(2,T)<20000 THEN 3950
  455. 3940 F7=F7+1:SF%(F7)=T:GOTO 3960
  456. 3950 M7=M7+1:SM%(M7)=T
  457. 3960 NEXT T
  458. 3970 RETURN
  459. 4000 END
  460. 6000 FOR T=1 TO 9:L%(T)=0:NEXT
  461. 6001 FOR T=1 TO Z
  462. 6002 S=INT(B%(1,T)/10000)
  463. 6003 IF S=3 THEN 6009
  464. 6004 N$=A$(T):GOSUB 20150
  465. 6005 FOR I=1 TO 9
  466. 6006 IF L$=L$(I) THEN 6008
  467. 6007 NEXT I
  468. 6008 L%(I)=L%(I)+1
  469. 6009 NEXT T
  470. 6010 PRINT "[147]"
  471. 6020 PRINT "LAST NAME SUMMARY"
  472. 6030 FOR T=1 TO 9
  473. 6035 IF L%(T)=0 THEN 6050
  474. 6040 PRINT L$(T),L%(T)
  475. 6050 NEXT T
  476. 6060 GOSUB 20100
  477. 6070 GOTO 2140
  478. 7000 PRINT "[149]":GOSUB 20000
  479. 7005 POKE 53281,1
  480. 7010 POKE 53280,9
  481. 7020 PRINT "";"       M E N U  C  -  SUMMARIES"
  482. 7030 PRINT " 1. CHARACTERISTICS   "
  483. 7035 PRINT
  484. 7040 PRINT " 2. LAST NAME            "
  485. 7050 PRINT
  486. 7060 PRINT " 3. YEAR OF BIRTH       "
  487. 7070 PRINT
  488. 7080 PRINT " 4. RETURN TO MENU B      "
  489. 7090 PRINT "    ";:INPUT A
  490. 7100 IF A>4 OR A<1 THEN 7000
  491. 7110 RETURN
  492. 8000 REM VISITOR
  493. 8002 IF L$(9)="" THEN 8010
  494. 8004 RETURN
  495. 8010 L$(9)="CASANOVA"
  496. 8020 Z=Z+1:ZC=Z
  497. 8030 A$(Z)="ALDO VICTOR CASANOVA"
  498. 8040 PRINT "[147]"
  499. 8050 POKE 53281,7:POKE 53280,7:PRINT ""
  500. 8060 PRINT "A YOUNG MAN IS WASHED ASHORE"
  501. 8070 PRINT "     HIS NAME IS ";A$(Z)
  502. 8080 GOSUB 20100                       
  503. 8085 B%(1,Z)=1E4:B%(2,Z)=1E4:M=1E4
  504. 8090 FOR T=1 TO 5
  505. 8100 C=FNA(5):IFC2$(T+4,C)=""THEN 8100
  506. 8110 B%(3,Z)=B%(3,Z)+M*C
  507. 8120 B%(4,Z)=B%(4,Z)+M*C
  508. 8130 M=M/10
  509. 8140 NEXT T
  510. 8145 PRINT "[147]"
  511. 8150 PRINT "THERE WERE SOME DIVORCES..."
  512. 8160 D8=0:DI=80-Y0/4
  513. 8170 GOSUB 3480
  514. 8180 PRINT "[147]"
  515. 8190 PRINT "   AND SOME BIRTHS..."
  516. 8191 B8=0
  517. 8195 FOR T=1 TO Z
  518. 8200 IF B%(2,T)<20000 THEN 8750
  519. 8210 IF B%(1,T)>19999 THEN 8750
  520. 8215 REM PRINT B%(1,T),B%(2,T),A$(T)
  521. 8220 Y7=Y0-B%(2,T)+10000*INT(B%(2,T)/10000)
  522. 8230 SP=ZC
  523. 8670 IF FNA(100)>F%(Y7) THEN 8750
  524. 8672 B8=B8+1
  525. 8675 S=FNA(2)
  526. 8680 N5=NM:IF S=2 THEN N5=NF
  527. 8685 F=FNA(N5 )+100*(S-1)
  528. 8690 M=FNA( N5)+100*(S-1)
  529. 8695 IF M=F THEN 8690
  530. 8700 N$=A$(SP):GOSUB 20150
  531. 8705 A$(Z+B8)=N$(F)+" "+N$(M)+" "+L$
  532. 8710 B%(1,Z+B8)=1E4:B%(2,Z+B8)=S*1E4+Y0
  533. 8711 P$(1)=STR$(B%(3,T)):P$(2)=STR$(B%(4,T))
  534. 8712 P$(3)=STR$(B%(3,SP)):P$(4)=STR$(B%(4,SP))
  535. 8715 M=1E4
  536. 8720 FOR U=1 TO  5
  537. 8725 C =FNA(4)
  538. 8727 P5=VAL(MID$(P$(C),U+1,1))
  539. 8730 B%(3,Z+B8)=B%(3,Z+B8)+M*P5
  540. 8735 D=FNA(4):IF D=C THEN 3735
  541. 8737 P5=VAL(MID$(P$(D),U+1,1))
  542. 8740 B%(4,Z+B8)=B%(4,Z+B8)+M*P5
  543. 8745 M=M/10
  544. 8746 NEXT U
  545. 8748 BI%(1,B8)=T:BI%(2,B8)=SP:BI%(3,B8)=Z+B8
  546. 8750 NEXT T
  547. 8760 PRINT "THERE WERE";B8;"BIRTHS"
  548. 8765 IF B8=0 THEN 8800
  549. 8770 FOR T=1 TO B8
  550. 8780 PRINT A$(BI%(3,T));" WAS BORN TO ";A$(BI%(1,T));" AND ";A$(BI%(2,T))
  551. 8785 PRINT :PRINT
  552. 8786 FOR K=1 TO 500*T:NEXT
  553. 8790 NEXT T
  554. 8795 Z=Z+B8
  555. 8800 GOSUB 20100
  556. 8810 PRINT "[147]"
  557. 8820 PRINT "   AND A DEATH!"
  558. 8830 B%(1,ZC)=30000
  559. 8840 PRINT "",A$(ZC);" AGE ??"
  560. 8850 GOSUB 20100
  561. 8860 RETURN
  562. 20000 REM BORDER
  563. 20010 PRINT "[147]";
  564. 20015 PRINT "";
  565. 20020 S$=" [146]":T$=S$+"[157]":U$="[157][157]"+S$
  566. 20030 FOR T=1 TO 37:PRINTS$;:NEXT
  567. 20040 FOR T=1 TO 23:PRINT T$;:NEXT
  568. 20045 PRINT "[145]";
  569. 20050 FOR T=1 TO 37:PRINT U$;:NEXT
  570. 20060 V$="[145][157]"+S$
  571. 20070 FOR T=1 TO 22:PRINTV$;:NEXT
  572. 20080 RETURN
  573. 20100 REM SPASBAR
  574. 20110 PRINT "[144]";"";"";
  575. 20120 PRINT "HIT SPACE BAR TO CONTINUE[146]";
  576. 20130 GETS9$:T8=RND(1):IFS9$<>" "THEN20130
  577. 20140 RETURN
  578. 20150 REM FIRST MIDDLE LAST
  579. 20160 SQ=0:F$="":M$="":L$=""
  580. 20170 FOR YY=1 TO LEN(N$)
  581. 20180 KK$=MID$(N$,YY,1)
  582. 20190 IF KK$=" " THEN SQ=SQ+1:GOTO 20230
  583. 20200 IF SQ=0 THEN F$=F$+KK$
  584. 20210 IF SQ=1 THEN M$=M$+KK$
  585. 20220 IF SQ=2 THEN L$=L$+KK$
  586. 20230 NEXT YY
  587. 20240 RETURN
  588. 21000 GOTO 21000
  589.